/******************************************************
Cours : LOG210
Session : H2012
Groupe : 02
Équipe : 03
Projet : Laboratoire #1
Étudiant(e)(s) : Philippe Nichols
                 Dalin Son
                 Nicholas Lefebvre
                 Jean-Philippe Chapdelaine
Code(s) perm. : NICP29109007
                SOND05099000
                LEFN06078909
                CHAJ13099001
Professeur : François Caron
Chargé de labo : Jean-Philippe Martin
Nom du fichier : Gui.java
Date créé : 2012-01-25
Date dern. modif. 2012-01-25

Inspiré fortement d'un exemple sur Internet, de David Geary, à la page suivante:
http://www.javaworld.com/javaworld/jw-05-2003/jw-0530-designpatterns-p2.html
*******************************************************
Historique des modifications
*******************************************************
2012-01-25 Création de la classe inspiré du site écrit juste en haut
*******************************************************/

package vue;

import java.io.BufferedWriter;
import java.io.FileWriter;

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * Classe permettant de recevoir des données dans des fichiers.
 * Elle sert à afficher les mots affichés selon la langue voulu.
 * Cela s'appèle la localisation linguistique.
 * @author Dalin Son
 */
public final class Localisation
{
    static private final String PREFS_BUNDLE_BASENAME = "prefs";
    static private final String BUNDLE_BASENAME = "app", PREFERRED_LOCALE_KEY = "locale";
    static private ResourceBundle resources;
    
    /**
     * Initialise le langage du programme
     */
    static
    {
        try
        {
            ResourceBundle preferences = ResourceBundle.getBundle(PREFS_BUNDLE_BASENAME);
            Locale locale = new Locale(preferences.getString(PREFERRED_LOCALE_KEY));
            resources = ResourceBundle.getBundle(BUNDLE_BASENAME, locale);
        }
        catch(java.util.MissingResourceException ex)
        {
            try
            {
                FileWriter fstream = new FileWriter("error.txt");
                BufferedWriter out = new BufferedWriter(fstream);
                out.write("ERROR: cannot find properties file " + BUNDLE_BASENAME);
                //Close the output stream
                out.close();
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
    };
    
    /**
     * Privé pour qu'on ne puisse pas l'instancier
     */
    private Localisation()
    {
    }
    
    /**
     * Pour avoir le nom d'une champs dans la langue voulu
     * @param key le nom du champs voulu
     * @return le nom du champs dans la langue voulu
     */
    public static String getResource(String key)
    {
        return (resources == null) ? null : resources.getString(key);
    }
}
